האם קיימת פונקציה מוכנה כזו? עדיף ב-php.
7 תשובות
יש כאן מדריך על ביטויים רגולריים, שזה שאתה צריך, אבל אני לא רואה שום דרך למצוא את השורש של המילה...
זה בודאי הכלי הטכני שנדרש לביצוע, אבל אני (המשתמש 108927 זה אני) מחפש שמישהו כבר עשה תוכנה כזו.
בודאי שאפשר לעשות את זה. אתה רואה שגוגל עשו. צריך אלגוריטם המבוסס על כללי הדקדוק.
קשה לי להאמין שמישהו כתב אלגוריתם כזה לשפה העברית ושחרר את זה לכולם בחינם, וגם אם כן, זה לא יעמיס קצת יותר מדי על הקוד? D:
טוב, זו רק דעה שלי. מקווה שמישהו אחר יוכל לעזור לך יותר. ^_^
יש כמה אופציות שתוכל להישתמש בהם, אבל כל אחת מהם דורשת הרבה קריאה, הבנה ולמידה בצורה נפרדת.
יש שני אלגוריטמים להשוואת מחרוזות "בערך" שיכולים להתאים לך:
soundex ו double metaphone
לשניהם יש מימושים גם בתור פרוצדורות mysql וגם בתור פונקציות PHP, כשהראשון כנראה עדיף לך.
מה שבטוח, שתהליך החיפוש ייקח ההמון זמן וימיס הרבה על השרת.
תודה רבה! אבל הבעיה היא שהפונקציות האלו מיועדות לאנגלית ולא לעברית. אבל קידמת אותי, כי כעת אני יודע איך ומה לחפש. ראיתי בינתיים שבאמת כנראה קיימים רק פתרונות מסחריים, ויש מישהו שעובד על זה בקוד פתוח, אבל נראה שעוד רחוק מהסיום.
זה הכי טוב שאני יכול להמליץ. לא ידעתי שהם לא עובדים עם עברית, אבל תוכל לנסות לממש משהו בעצמך, למרות שכאן אומרים שזה די קשה עבור עברית.
בכל אופן, אם תחליט לממש כזה בעצמך - גוגל יעזור לך יותר ממני.
עוד אופציה שיכולה לעניין אותך זה חיפוש לפי levenshtein
שהיא פחות טובה אבל תעבוד גם עם עברית.
+ תראה עם sphinx engine או lucene מציעים איזה משהו בשביל זה.
יכול להיות שאחד ממנועי החיפוש האלה דווקא מתמודד איכשהו עם הבעיה.